import request from '@/config/axios'

// 聚集预警主表（1条记录对应1次聚集事件） VO
export interface WarningGatherVO {
  id: number // 聚集预警ID
  warningConditionId: number // 预警条件ID
  gatherName: string // 聚集条件名称
  startTime: Date // 聚集开始时间
  endTime: Date // 聚集结束时间
  createTime: Date // 聚集结束时间
  warnPersonCount: number // 聚集人数
  gatherAddress: string // 聚集地址
  isRead: number //阅读状态
}

// 预警配置响应VO
export interface WarnConfigRespVO {
  id: string // 配置ID（UUID）
  name: string // 配置名称
  warnType?: number // 1-围栏预警;2-聚集预警;3-出入杭预警
  fenceType?: number // 围栏类型：1-禁入，2-禁出
}

// 预警配置查询参数
export interface WarnConfigListVo {
  idList?: string[]
  createDeptId?: number
  warnType?: number
  idNumber?: string
  fenceType?: number
}

// 聚集预警主表（1条记录对应1次聚集事件） API
export const WarningGatherApi = {
  // 查询聚集预警主表（1条记录对应1次聚集事件）分页
  getWarningGatherPage: async (params: any) => {
    return await request.get({ url: `/member/warning-gather/page`, params })
  },

  // 查询聚集预警主表（1条记录对应1次聚集事件）详情
  getWarningGather: async (id: number) => {
    return await request.get({ url: `/member/warning-gather/get?id=` + id })
  },

  // 新增聚集预警主表（1条记录对应1次聚集事件）
  createWarningGather: async (data: WarningGatherVO) => {
    return await request.post({ url: `/member/warning-gather/create`, data })
  },

  // 修改聚集预警主表（1条记录对应1次聚集事件）
  updateWarningGather: async (data: WarningGatherVO) => {
    return await request.put({ url: `/member/warning-gather/update`, data })
  },

  // 删除聚集预警主表（1条记录对应1次聚集事件）
  deleteWarningGather: async (id: number) => {
    return await request.delete({ url: `/member/warning-gather/delete?id=` + id })
  },

  // 导出聚集预警主表（1条记录对应1次聚集事件） Excel
  exportWarningGather: async (params) => {
    return await request.download({ url: `/member/warning-gather/export-excel`, params })
  },

  // 获取预警配置下拉框数据
  getConfigSelect: async (params: WarnConfigListVo = {}) => {
    return await request.get({ url: `/member/map-config/configSelect`, params })
  }
}
